Skip to content

Initial implementation of google-dialog#68

Merged
pragmatrix merged 20 commits into
masterfrom
google-dialog
May 20, 2026
Merged

Initial implementation of google-dialog#68
pragmatrix merged 20 commits into
masterfrom
google-dialog

Conversation

@pragmatrix
Copy link
Copy Markdown
Owner

This PR uses the Gemini Live API to implement a Google based live dialog option for the context switch protocol and audio knife.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new “google-dialog” service backed by the Gemini Live API, wiring it into the context-switch registry and updating examples to support multiple live dialog providers (OpenAI, Azure OpenAI, Google).

Changes:

  • Introduces services/google-dialog (params/events + client session loop) and registers it under "google-dialog".
  • Refactors examples/dialog.rs into a provider-based CLI with model/voice listing and shared function-call handling.
  • Adjusts context-switch-core exports and performs repo-wide import cleanups; adds the gemini-live-rs submodule + related workspace dependencies.

Reviewed changes

Copilot reviewed 38 out of 38 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/tests.rs Import path cleanup to match new context_switch_core re-exports.
src/protocol.rs Updates imports for BillingId/RequestId after core export changes.
src/lib.rs Re-exports GoogleDialog from the top-level services module.
src/context_switch.rs Registers "google-dialog" service and minor comment touch-up.
services/playback/src/lib.rs Import cleanup and minor anyhow usage refactor.
services/openai-dialog/src/lib.rs Import cleanup to use top-level Conversation.
services/openai-dialog/src/client.rs Import regrouping; no logic change.
services/google-transcribe/src/transcribe.rs Import cleanup and uses ConversationOutput directly.
services/google-dialog/src/types.rs Adds Google dialog params + service event types.
services/google-dialog/src/lib.rs Adds GoogleDialog service entrypoint and output-modality parsing.
services/google-dialog/src/client.rs Implements Gemini Live session loop, IO/event handling, and billing mapping.
services/google-dialog/Cargo.toml New crate manifest for google-dialog.
services/elevenlabs/src/transcribe.rs Import cleanup; extracts language helpers import.
services/azure/src/translate.rs Import cleanup to use re-exported core types.
services/azure/src/transcribe.rs Import cleanup to use re-exported core types.
services/azure/src/synthesize.rs Import cleanup to use re-exported core types.
services/aristech/src/transcribe.rs Import cleanup to use re-exported core types.
services/aristech/src/synthesize.rs Import cleanup to use re-exported core types.
examples/transcribe.rs Updates imports to new context_switch_core re-exports.
examples/dialog.rs New provider-based CLI and refactored conversation/playback wiring.
examples/dialog_providers/openai.rs Provider implementation + OpenAI model listing helper.
examples/dialog_providers/mod.rs Provider API trait + dispatcher.
examples/dialog_providers/google.rs Provider implementation + Gemini model listing + voice validation.
examples/dialog_providers/azure_openai.rs Provider implementation for Azure OpenAI (deployment-based).
examples/azure-translate.rs Import cleanup to new context_switch_core re-exports.
examples/aristech-transcribe.rs Import cleanup; adds a spellcheck ignore comment.
examples/aristech-synthesize.rs Import cleanup; minor reordering.
core/src/lib.rs Makes conversation module private and re-exports conversation types at crate root.
core/src/conversation.rs Fixes comment wording (“its” → “it’s”).
core/src/billing_context.rs Import formatting cleanup.
Cargo.toml Adds google-dialog/gemini-live wiring, submodule deps, and workspace metadata.
audio-knife/src/main.rs Import cleanup to new BillingId re-export.
.vscode/settings.json Removes VS Code spellchecker settings file.
.harper-dictionary.txt Updates spelling dictionary entries (e.g., alsa, inband).
.gitmodules Adds external/gemini-live-rs submodule entry.
.github/copilot-instructions.md Adds/expands repo coding guidelines.
.env.example Adds GEMINI_API_KEY example entry.

Comment thread core/src/lib.rs
Comment thread src/context_switch.rs
Comment thread Cargo.toml
@pragmatrix pragmatrix merged commit 18d8cd7 into master May 20, 2026
6 checks passed
@pragmatrix pragmatrix deleted the google-dialog branch May 20, 2026 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants